#lang racket


(require "../constructors/main.rkt")

(require (prefix-in im: "ac-imediate.rkt"))

(provide (all-from-out "../constructors/main.rkt"))


(set-arc! im:arc)
(set-elliptical-arc! im:elliptical-arc)
(set-circle! im:circle)
(set-donut! im:donut)
(set-ellipse! im:ellipse)
(set-helix-2d! im:helix-2d)
(set-line! im:line)
(set-ngon! im:ngon)
(set-nurbs-curve! im:nurbs-curve)
(set-nurbs-surface! im:nurbs-surface)
(set-rectangle! im:rectangle)
(set-spline! im:spline)
(set-star! im:star)

;(set-text! im:text)

(set-box! im:box)
(set-cone! im:cone)
(set-cone-frustrum! im:cone-frustrum)
(set-cylinder! im:cylinder)

;(define (elliptical-cone x-radius y-radius height))
;(define (gengon width sides fillet-width height))
;(define (helix-3d base-radius top-radius section-radius turns turn-height direction))
;(define (mesh vertices faces))
;(define (paraboloid radius height))

(set-pipe! im:pipe)

;(define (platonic-solids width sides))
;(define (pyramid width sides height))

(set-sphere! im:sphere)


; operations

;(define (spindle radius height))
;(define (superellipsoid width length height))
;(define (torus base-radius section-radius))
;(define (truncated-icosahedron width))
;(define (wedge width height))

(set-extrude! im:extrude)

;(define (guide-loft guide shapes))

(set-intersect! im:intersect)

;(define (lattice shape))

(set-loft! im:loft)

;(define (mirror plane shape))

(set-move! im:move)
(set-offset! im:offset)

;(define (path-loft path shapes))
;(define (revolve axis shape))

(set-rotate! im:rotate)
(set-scale! im:scale)

;(define (slice plane shape))

(set-subtract! im:subtract)

;(define (sweep path shape))
;(define (thicken length shape))

(set-union! im:union)


; lang

(set-on-left! im:on-left)
(set-on-right! im:on-right)
(set-on-x! im:on-x)
(set-on-front! im:on-front)
(set-on-back! im:on-back)
(set-on-y! im:on-y)
(set-on-top! im:on-top)
(set-on-bottom! im:on-bottom)
(set-on-z! im:on-z)